/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package animacion;

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 *
 * @author Javier Cifuentes M
 */
public class objetoanimado extends Thread{

    int xinicial, xfinal, yinicial, yfinal, xactual, yactual;
    int unidades = 5;
    JLabel humano;
    JPanel panel;
    int tiempo = 10;

    public objetoanimado(JPanel panel, int xinicial, int yinicial, int xfinal, int yfinal) {
        this.panel = panel;
        humano = new JLabel();
        panel.add(humano);
        humano.setBounds(xinicial, yinicial, 40, 40);
        ImageIcon icono = new ImageIcon(getClass().getResource("../imagenes/persona.png"));
        humano.setIcon(icono);
        humano.setVisible(true);
        xactual = xinicial;
        yactual = yinicial;
        this.xinicial = xinicial;
        this.yinicial = yinicial;
        this.xfinal = xfinal;
        this.yfinal = yfinal;
    }

    @Override
    public void run() {
        if (xinicial > xfinal) {//moverse de derecha a izquierda
            while (xactual > xfinal) {
                xactual = xactual - unidades;
                //System.out.println("xactual:" + xactual);
                humano.setLocation(xactual, yactual);
                try {
                    Thread.sleep(tiempo);
                } catch (InterruptedException ex) {
                    Logger.getLogger(objetoanimado.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        } else {//moverse de izquierda a derecha
            while (xactual < xfinal) {
                xactual = xactual + unidades;
                //System.out.println("xactual:" + xactual);
                humano.setLocation(xactual, yactual);
                try {
                    Thread.sleep(tiempo);
                } catch (InterruptedException ex) {
                    Logger.getLogger(objetoanimado.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
        if (yinicial > yfinal) {//moverse de abajo a arriba
            while (yactual > yfinal) {
                yactual = yactual - unidades;
                //System.out.println("yactual:" + yactual);
                humano.setLocation(xactual, yactual);
                humano.setVisible(true);
                try {
                    Thread.sleep(tiempo);
                } catch (InterruptedException ex) {
                    Logger.getLogger(objetoanimado.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        } else {//de arriba a abajo
            while (yactual < yfinal) {
                yactual = yactual + unidades;
               // System.out.println("yactual:" + yactual);
                humano.setLocation(xactual, yactual);
                try {
                    Thread.sleep(tiempo);
                } catch (InterruptedException ex) {
                    Logger.getLogger(objetoanimado.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
        humano.setVisible(false);
        panel.remove(humano);
    }
}
